<?php
/**
 * tpshop
 * ============================================================================
 * 版权所有 2016-2026 欣才开裆裤开发组
 * 网站地址: http://git.oschina.net/ts128
 * ----------------------------------------------------------------------------
 * 这不是一个自由软件！您只能在不用于商业目的的前提下对程序代码进行修改和使用 。
 * 不允许对程序代码以任何形式任何目的的再发布。
 * ============================================================================
 * Author: 十年丿小木
 * Date: 2016-10-18
 */
namespace Admin\Controller;
use Admin\Controller\BaseController;
/**
* 文章列表
*/
class ArticleController extends BaseController {
	private $perpage = 10;//每页显示数据数
    private $M;
    public function _initialize(){
        $this->M = M("article");//实例化模型类
    }
/*
*   分页显示数据
*/
    public function index(){
        $count = $this->M->count();    // 总记录数
        $pages = ceil($count / $this->perpage);//向上取整取页数（总记录数/每页记录数）
        $nowpage = I("p");
        if(empty($nowpage)){
            $nowpage = 1;
        }
        $Page = new \Think\Page($count, $this->perpage);//实例化Page类
        $Page->setConfig("prev", "上一页");
        $Page->setConfig("next", "下一页");
        $aaa=M("article");
        $aaa->alias("a")->join(array(//多表关联
            "LEFT JOIN y_article_cate c on a.cate_id=c.id",
            "LEFT JOIN y_admin_member m on a.author=m.id"
        ))->field(array(
            "a.*",
            "a.id"=> "id",
            "c.name"=> "name",
            "m.username"=> "username"
        ));
        $list = $aaa->limit($Page->firstRow.','.$Page->listRows)->select();   // 每页显示的数据数组
        $show = $Page->show();  // 页码链接内容
        $this->assign("count", $count);
        $this->assign("list", $list);
        $this->assign("page", $show);
        $this->assign("pages", $pages);
        $this->assign("nowpage", $nowpage);
        session_start();
        $id=I("get.");
        $id=$id["id"];
        $_SESSION["pid"]=$id;
        $id=$_SESSION["pid"];
        $M=M("admin_node");
        $node=$M->where("parent_id='$id'")->select();
        $_SESSION["node"]=$node;
        $this->display();
    }
/**
*   编辑文章信息
*/ 
    public function edit(){
        $id = I("id");//获取id
        if(!empty($id)){
            $data = $this->M->where("id=".$id)->select();//按id查询
            $data = $data[0];
            $data["pubtime"] = date("Y-m-d", $data["pubtime"]);//发布时间显示格式化
            $data["author"] = $_SESSION['id'];//作者为当前登录id
            $this->assign("data", $data);
        }
        $cate = $this->M->table("__ARTICLE_CATE__")->select();//分类下拉列表展示
        $this->assign("cate", $cate);
        $this->display();
    }
/**
*   添加/修改文章
*/
    public function doEdit($title,$content,$author,$pubtime,$views,$cate_id){
        $data = $this->M->create();//创建数据对象
        $data["pubtime"] = strtotime($data["pubtime"]); 
        $data["author"] = $_SESSION['id'];
//点击阅读量+1
        //$sql="update 'article' set 'views'='views'+1 where 'id'=$id";
        //$res=$data["views"]->execute($sql);
        if(empty($data["id"])){//id为不存在
            $res = $this->M->data($data)->add();//添加
        }
        else{
            $res = $this->M->data($data)->save();//更新
        }
        if($res){
            $this->success("操作成功", U("Article/index"));
        }
        else{
            $this->error("操作失败", U("Article/edit"));
        }
    }

/**
*   添加/修改文章图片
*/
    public function doPhoto($id = ""){
    	if(empty($id)){
            $this->error("请输入文章id", U("Article/index"));
       }
        //$data = $this->M->create();// 本对象->实例化基础模型类->根据表单提交的POST数据创建数据对象
        //echo I("post.article_id");//获取系统输入变量
        //var_dump(I("post.picture"));//获取系统输入变量
        //mport("ORG.Net.UploadFile");//引入UploadFile类
        $upload = new \Think\Upload();// 实例化上传类    
        $upload->maxSize   =     3145728 ;// 设置附件上传大小    
        $upload->exts     =     array('jpg', 'gif', 'png', 'jpeg');// 设置附件上传类型 
        $upload->rootPath  =      './Uploads/'; // 设置附件上传根目录  
        $upload->savePath  =      './Article/'; // 设置附件上传目录
        $upload->subName = array('date','Y/m/d');
        $upload->uploadReplace = true;//若同名则覆盖    
        // 上传文件     
        $info = $upload -> upload();
        if(!$info) {// 上传错误提示错误信息        
            $this->error($upload->getError());    
        }else{// 上传成功        
        //     foreach($info as $file){ 
        //         //输出上传后的地址
        //         echo $file['savepath'].$file['savename'];               
        //         }           
        $tmp = M("article_pic");
        $picture = array();
            foreach($info as $v){
                $picture = substr($v["savepath"], strlen(CONTROLLER_NAME)+3) . $v["savename"];//文件路径（按长度获取保存路径）
                $tmp->data(array("article_id"=>$id, "picture"=>$picture))->add();//添加到数据库中
            }
            $this->success(count($info)."个图片已上传", U("Article/index"));      
        } 

    }
/*
*   ajax请求查询文章图片
*/
    public function getPic(){
        $id = I("id");
        $picinfo["pic"] = M("article_pic")->where("article_id=".$id)->select();//查询图片
        $picinfo["pics"] = M("article_pic")->where("article_id=".$id)->count();//图片数量
        echo json_encode($picinfo);//转换成json格式
    }
/*
*   ajax请求删除文章图片
*/
    public function delPic(){
        $id = I("id");//获取图片表的id
        $picture = $this->M->table("__ARTICLE_PIC__")->where("id=".$id)->select();//查询图片
        $delres = unlink(C("TMPL_PARSE_STRING")["__UPLOAD__"]."/ARTICLE/".$picture[0]["picture"]);
        //unlike删除服务器图片
        if($delres){
            $res = $this->M->table("__ARTICLE_PIC__")->where("id=".$id)->delete();//数据库删除
        }
        echo $res;
    }
    /*
    *   删除文章
    */
    public function del()
    {
        $id = I("id");
        $res = $this->M->where("id=".$id)->delete();//按id删除
        if($res){
            $this->success("操作成功", U("Article/index"));
        }
        else{
            $this->error("操作失败", U("Article/index"));
        }
    }
}